# RUN: llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=+wavefrontsize32,-wavefrontsize64 -disassemble -show-encoding < %s | FileCheck -strict-whitespace -check-prefix=GFX10 %s
# RUN: llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=-wavefrontsize32,+wavefrontsize64 -disassemble -show-encoding < %s | FileCheck -strict-whitespace -check-prefix=GFX10 %s


# GFX10: s_barrier                               ; encoding: [0x00,0x00,0x8a,0xbf]
0x00,0x00,0x8a,0xbf

# GFX10: s_branch 0                              ; encoding: [0x00,0x00,0x82,0xbf]
0x00,0x00,0x82,0xbf

# GFX10: s_branch 4660                           ; encoding: [0x34,0x12,0x82,0xbf]
0x34,0x12,0x82,0xbf

# GFX10: s_branch 49617                          ; encoding: [0xd1,0xc1,0x82,0xbf]
0xd1,0xc1,0x82,0xbf

# GFX10: s_cbranch_cdbgsys 0                     ; encoding: [0x00,0x00,0x97,0xbf]
0x00,0x00,0x97,0xbf

# GFX10: s_cbranch_cdbgsys 4660                  ; encoding: [0x34,0x12,0x97,0xbf]
0x34,0x12,0x97,0xbf

# GFX10: s_cbranch_cdbgsys 49617                 ; encoding: [0xd1,0xc1,0x97,0xbf]
0xd1,0xc1,0x97,0xbf

# GFX10: s_cbranch_cdbgsys_and_user 0            ; encoding: [0x00,0x00,0x9a,0xbf]
0x00,0x00,0x9a,0xbf

# GFX10: s_cbranch_cdbgsys_and_user 4660         ; encoding: [0x34,0x12,0x9a,0xbf]
0x34,0x12,0x9a,0xbf

# GFX10: s_cbranch_cdbgsys_and_user 49617        ; encoding: [0xd1,0xc1,0x9a,0xbf]
0xd1,0xc1,0x9a,0xbf

# GFX10: s_cbranch_cdbgsys_or_user 0             ; encoding: [0x00,0x00,0x99,0xbf]
0x00,0x00,0x99,0xbf

# GFX10: s_cbranch_cdbgsys_or_user 4660          ; encoding: [0x34,0x12,0x99,0xbf]
0x34,0x12,0x99,0xbf

# GFX10: s_cbranch_cdbgsys_or_user 49617         ; encoding: [0xd1,0xc1,0x99,0xbf]
0xd1,0xc1,0x99,0xbf

# GFX10: s_cbranch_cdbguser 0                    ; encoding: [0x00,0x00,0x98,0xbf]
0x00,0x00,0x98,0xbf

# GFX10: s_cbranch_cdbguser 4660                 ; encoding: [0x34,0x12,0x98,0xbf]
0x34,0x12,0x98,0xbf

# GFX10: s_cbranch_cdbguser 49617                ; encoding: [0xd1,0xc1,0x98,0xbf]
0xd1,0xc1,0x98,0xbf

# GFX10: s_cbranch_execnz 0                      ; encoding: [0x00,0x00,0x89,0xbf]
0x00,0x00,0x89,0xbf

# GFX10: s_cbranch_execnz 4660                   ; encoding: [0x34,0x12,0x89,0xbf]
0x34,0x12,0x89,0xbf

# GFX10: s_cbranch_execnz 49617                  ; encoding: [0xd1,0xc1,0x89,0xbf]
0xd1,0xc1,0x89,0xbf

# GFX10: s_cbranch_execz 0                       ; encoding: [0x00,0x00,0x88,0xbf]
0x00,0x00,0x88,0xbf

# GFX10: s_cbranch_execz 4660                    ; encoding: [0x34,0x12,0x88,0xbf]
0x34,0x12,0x88,0xbf

# GFX10: s_cbranch_execz 49617                   ; encoding: [0xd1,0xc1,0x88,0xbf]
0xd1,0xc1,0x88,0xbf

# GFX10: s_cbranch_scc0 0                        ; encoding: [0x00,0x00,0x84,0xbf]
0x00,0x00,0x84,0xbf

# GFX10: s_cbranch_scc0 4660                     ; encoding: [0x34,0x12,0x84,0xbf]
0x34,0x12,0x84,0xbf

# GFX10: s_cbranch_scc0 49617                    ; encoding: [0xd1,0xc1,0x84,0xbf]
0xd1,0xc1,0x84,0xbf

# GFX10: s_cbranch_scc1 0                        ; encoding: [0x00,0x00,0x85,0xbf]
0x00,0x00,0x85,0xbf

# GFX10: s_cbranch_scc1 4660                     ; encoding: [0x34,0x12,0x85,0xbf]
0x34,0x12,0x85,0xbf

# GFX10: s_cbranch_scc1 49617                    ; encoding: [0xd1,0xc1,0x85,0xbf]
0xd1,0xc1,0x85,0xbf

# GFX10: s_cbranch_vccnz 0                       ; encoding: [0x00,0x00,0x87,0xbf]
0x00,0x00,0x87,0xbf

# GFX10: s_cbranch_vccnz 4660                    ; encoding: [0x34,0x12,0x87,0xbf]
0x34,0x12,0x87,0xbf

# GFX10: s_cbranch_vccnz 49617                   ; encoding: [0xd1,0xc1,0x87,0xbf]
0xd1,0xc1,0x87,0xbf

# GFX10: s_cbranch_vccz 0                        ; encoding: [0x00,0x00,0x86,0xbf]
0x00,0x00,0x86,0xbf

# GFX10: s_cbranch_vccz 4660                     ; encoding: [0x34,0x12,0x86,0xbf]
0x34,0x12,0x86,0xbf

# GFX10: s_cbranch_vccz 49617                    ; encoding: [0xd1,0xc1,0x86,0xbf]
0xd1,0xc1,0x86,0xbf

# GFX10: s_clause 0x0                            ; encoding: [0x00,0x00,0xa1,0xbf]
0x00,0x00,0xa1,0xbf

# GFX10: s_clause 0x1234                         ; encoding: [0x34,0x12,0xa1,0xbf]
0x34,0x12,0xa1,0xbf

# GFX10: s_clause 0xc1d1                         ; encoding: [0xd1,0xc1,0xa1,0xbf]
0xd1,0xc1,0xa1,0xbf

# GFX10: s_code_end                              ; encoding: [0x00,0x00,0x9f,0xbf]
0x00,0x00,0x9f,0xbf

# GFX10: s_decperflevel 0                        ; encoding: [0x00,0x00,0x95,0xbf]
0x00,0x00,0x95,0xbf

# GFX10: s_decperflevel 0x1234                   ; encoding: [0x34,0x12,0x95,0xbf]
0x34,0x12,0x95,0xbf

# GFX10: s_decperflevel 0xc1d1                   ; encoding: [0xd1,0xc1,0x95,0xbf]
0xd1,0xc1,0x95,0xbf

# GFX10: s_denorm_mode 0                         ; encoding: [0x00,0x00,0xa5,0xbf]
0x00,0x00,0xa5,0xbf

# GFX10: s_denorm_mode 0x1234                    ; encoding: [0x34,0x12,0xa5,0xbf]
0x34,0x12,0xa5,0xbf

# GFX10: s_denorm_mode 0xc1d1                    ; encoding: [0xd1,0xc1,0xa5,0xbf]
0xd1,0xc1,0xa5,0xbf

# GFX10: s_endpgm                                ; encoding: [0x00,0x00,0x81,0xbf]
0x00,0x00,0x81,0xbf

# GFX10: s_endpgm 1                              ; encoding: [0x01,0x00,0x81,0xbf]
0x01,0x00,0x81,0xbf

# GFX10: s_endpgm 65535                          ; encoding: [0xff,0xff,0x81,0xbf]
0xff,0xff,0x81,0xbf

# GFX10: s_endpgm_ordered_ps_done                ; encoding: [0x00,0x00,0x9e,0xbf]
0x00,0x00,0x9e,0xbf

# GFX10: s_endpgm_saved                          ; encoding: [0x00,0x00,0x9b,0xbf]
0x00,0x00,0x9b,0xbf

# GFX10: s_icache_inv                            ; encoding: [0x00,0x00,0x93,0xbf]
0x00,0x00,0x93,0xbf

# GFX10: s_incperflevel 0                        ; encoding: [0x00,0x00,0x94,0xbf]
0x00,0x00,0x94,0xbf

# GFX10: s_incperflevel 0x1234                   ; encoding: [0x34,0x12,0x94,0xbf]
0x34,0x12,0x94,0xbf

# GFX10: s_incperflevel 0xc1d1                   ; encoding: [0xd1,0xc1,0x94,0xbf]
0xd1,0xc1,0x94,0xbf

# GFX10: s_inst_prefetch 0x0                     ; encoding: [0x00,0x00,0xa0,0xbf]
0x00,0x00,0xa0,0xbf

# GFX10: s_inst_prefetch 0x1234                  ; encoding: [0x34,0x12,0xa0,0xbf]
0x34,0x12,0xa0,0xbf

# GFX10: s_inst_prefetch 0xc1d1                  ; encoding: [0xd1,0xc1,0xa0,0xbf]
0xd1,0xc1,0xa0,0xbf

# GFX10: s_nop 0                                 ; encoding: [0x00,0x00,0x80,0xbf]
0x00,0x00,0x80,0xbf

# GFX10: s_nop 0x1234                            ; encoding: [0x34,0x12,0x80,0xbf]
0x34,0x12,0x80,0xbf

# GFX10: s_nop 0xc1d1                            ; encoding: [0xd1,0xc1,0x80,0xbf]
0xd1,0xc1,0x80,0xbf

# GFX10: s_round_mode 0x0                        ; encoding: [0x00,0x00,0xa4,0xbf]
0x00,0x00,0xa4,0xbf

# GFX10: s_round_mode 0x1234                     ; encoding: [0x34,0x12,0xa4,0xbf]
0x34,0x12,0xa4,0xbf

# GFX10: s_round_mode 0xc1d1                     ; encoding: [0xd1,0xc1,0xa4,0xbf]
0xd1,0xc1,0xa4,0xbf

# GFX10: s_sendmsg sendmsg(0, 0, 0)              ; encoding: [0x00,0x00,0x90,0xbf]
0x00,0x00,0x90,0xbf

# GFX10: s_sendmsg 4660                          ; encoding: [0x34,0x12,0x90,0xbf]
0x34,0x12,0x90,0xbf

# GFX10: s_sendmsg 49617                         ; encoding: [0xd1,0xc1,0x90,0xbf]
0xd1,0xc1,0x90,0xbf

# GFX10: s_sendmsghalt sendmsg(0, 0, 0)          ; encoding: [0x00,0x00,0x91,0xbf]
0x00,0x00,0x91,0xbf

# GFX10: s_sendmsghalt 4660                      ; encoding: [0x34,0x12,0x91,0xbf]
0x34,0x12,0x91,0xbf

# GFX10: s_sendmsghalt 49617                     ; encoding: [0xd1,0xc1,0x91,0xbf]
0xd1,0xc1,0x91,0xbf

# GFX10: s_sethalt 0                             ; encoding: [0x00,0x00,0x8d,0xbf]
0x00,0x00,0x8d,0xbf

# GFX10: s_sethalt 0x1234                        ; encoding: [0x34,0x12,0x8d,0xbf]
0x34,0x12,0x8d,0xbf

# GFX10: s_sethalt 0xc1d1                        ; encoding: [0xd1,0xc1,0x8d,0xbf]
0xd1,0xc1,0x8d,0xbf

# GFX10: s_setkill 0                             ; encoding: [0x00,0x00,0x8b,0xbf]
0x00,0x00,0x8b,0xbf

# GFX10: s_setkill 0x1234                        ; encoding: [0x34,0x12,0x8b,0xbf]
0x34,0x12,0x8b,0xbf

# GFX10: s_setkill 0xc1d1                        ; encoding: [0xd1,0xc1,0x8b,0xbf]
0xd1,0xc1,0x8b,0xbf

# GFX10: s_setprio 0                             ; encoding: [0x00,0x00,0x8f,0xbf]
0x00,0x00,0x8f,0xbf

# GFX10: s_setprio 0x1234                        ; encoding: [0x34,0x12,0x8f,0xbf]
0x34,0x12,0x8f,0xbf

# GFX10: s_setprio 0xc1d1                        ; encoding: [0xd1,0xc1,0x8f,0xbf]
0xd1,0xc1,0x8f,0xbf

# GFX10: s_sleep 0                               ; encoding: [0x00,0x00,0x8e,0xbf]
0x00,0x00,0x8e,0xbf

# GFX10: s_sleep 0x1234                          ; encoding: [0x34,0x12,0x8e,0xbf]
0x34,0x12,0x8e,0xbf

# GFX10: s_sleep 0xc1d1                          ; encoding: [0xd1,0xc1,0x8e,0xbf]
0xd1,0xc1,0x8e,0xbf

# GFX10: s_trap 0                                ; encoding: [0x00,0x00,0x92,0xbf]
0x00,0x00,0x92,0xbf

# GFX10: s_trap 0x1234                           ; encoding: [0x34,0x12,0x92,0xbf]
0x34,0x12,0x92,0xbf

# GFX10: s_trap 0xc1d1                           ; encoding: [0xd1,0xc1,0x92,0xbf]
0xd1,0xc1,0x92,0xbf

# GFX10: s_ttracedata                            ; encoding: [0x00,0x00,0x96,0xbf]
0x00,0x00,0x96,0xbf

# GFX10: s_ttracedata_imm 0x0                    ; encoding: [0x00,0x00,0xa8,0xbf]
0x00,0x00,0xa8,0xbf

# GFX10: s_ttracedata_imm 0x1234                 ; encoding: [0x34,0x12,0xa8,0xbf]
0x34,0x12,0xa8,0xbf

# GFX10: s_ttracedata_imm 0xc1d1                 ; encoding: [0xd1,0xc1,0xa8,0xbf]
0xd1,0xc1,0xa8,0xbf

# GFX10: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) ; encoding: [0x00,0x00,0x8c,0xbf]
0x00,0x00,0x8c,0xbf

# GFX10: s_waitcnt vmcnt(4) expcnt(3) lgkmcnt(18) ; encoding: [0x34,0x12,0x8c,0xbf]
0x34,0x12,0x8c,0xbf

# GFX10: s_waitcnt vmcnt(49) expcnt(5) lgkmcnt(1) ; encoding: [0x51,0xc1,0x8c,0xbf]
0x51,0xc1,0x8c,0xbf

# GFX10: s_wait_idle                             ; encoding: [0x00,0x00,0xa2,0xbf]
0x00,0x00,0xa2,0xbf

# GFX10: s_wakeup                                ; encoding: [0x00,0x00,0x83,0xbf]
0x00,0x00,0x83,0xbf

#===------------------------------------------------------------------------===#
# s_waitcnt_depctr.
#===------------------------------------------------------------------------===#

# GFX10: s_waitcnt_depctr 0x20                   ; encoding: [0x20,0x00,0xa3,0xbf]
0x20,0x00,0xa3,0xbf

# GFX10: s_waitcnt_depctr 0x40                   ; encoding: [0x40,0x00,0xa3,0xbf]
0x40,0x00,0xa3,0xbf

# GFX10: s_waitcnt_depctr 0x60                   ; encoding: [0x60,0x00,0xa3,0xbf]
0x60,0x00,0xa3,0xbf

# GFX10: s_waitcnt_depctr 0x80                   ; encoding: [0x80,0x00,0xa3,0xbf]
0x80,0x00,0xa3,0xbf

# GFX10: s_waitcnt_depctr 0xffff                 ; encoding: [0xff,0xff,0xa3,0xbf]
0xff,0xff,0xa3,0xbf

# GFX10: s_waitcnt_depctr depctr_sa_sdst(0)      ; encoding: [0x1e,0xff,0xa3,0xbf]
0x1e,0xff,0xa3,0xbf

# GFX10: s_waitcnt_depctr depctr_va_vdst(0)      ; encoding: [0x1f,0x0f,0xa3,0xbf]
0x1f,0x0f,0xa3,0xbf

# GFX10: s_waitcnt_depctr depctr_va_vdst(1)      ; encoding: [0x1f,0x1f,0xa3,0xbf]
0x1f,0x1f,0xa3,0xbf

# GFX10: s_waitcnt_depctr depctr_va_vdst(14)     ; encoding: [0x1f,0xef,0xa3,0xbf]
0x1f,0xef,0xa3,0xbf

# GFX10: s_waitcnt_depctr depctr_va_sdst(0)      ; encoding: [0x1f,0xf1,0xa3,0xbf]
0x1f,0xf1,0xa3,0xbf

# GFX10: s_waitcnt_depctr depctr_va_sdst(6)      ; encoding: [0x1f,0xfd,0xa3,0xbf]
0x1f,0xfd,0xa3,0xbf

# GFX10: s_waitcnt_depctr depctr_va_ssrc(0)      ; encoding: [0x1f,0xfe,0xa3,0xbf]
0x1f,0xfe,0xa3,0xbf

# GFX10: s_waitcnt_depctr depctr_va_vcc(0)       ; encoding: [0x1d,0xff,0xa3,0xbf]
0x1d,0xff,0xa3,0xbf

# GFX10: s_waitcnt_depctr depctr_vm_vsrc(0)      ; encoding: [0x03,0xff,0xa3,0xbf]
0x03,0xff,0xa3,0xbf

# GFX10: s_waitcnt_depctr depctr_vm_vsrc(1)      ; encoding: [0x07,0xff,0xa3,0xbf]
0x07,0xff,0xa3,0xbf

# GFX10: s_waitcnt_depctr depctr_vm_vsrc(6)      ; encoding: [0x1b,0xff,0xa3,0xbf]
0x1b,0xff,0xa3,0xbf

# GFX10: s_waitcnt_depctr depctr_sa_sdst(0) depctr_va_vdst(0) depctr_va_sdst(0) depctr_va_ssrc(0) depctr_va_vcc(0) depctr_vm_vsrc(0) ; encoding: [0x00,0x00,0xa3,0xbf]
0x00,0x00,0xa3,0xbf

# GFX10: s_waitcnt_depctr depctr_va_vdst(1) depctr_va_sdst(1) depctr_vm_vsrc(1) ; encoding: [0x07,0x13,0xa3,0xbf]
0x07,0x13,0xa3,0xbf

# GFX10: s_waitcnt_depctr depctr_va_vdst(14) depctr_va_sdst(6) depctr_vm_vsrc(6) ; encoding: [0x1b,0xed,0xa3,0xbf]
0x1b,0xed,0xa3,0xbf
